跳到主要内容

4.2 OLED显示屏模块

(1)本次以OLED显示屏作为第一个实验,先让屏幕“亮”起来作为我们入门的第一步(选择开发板和选择端口以及上传的步骤以下不再赘述,具体参考3.4小结)。OLED显示屏使用了SPI总线连接,其原理图如下图所示。

alt text
图4.2.1 OLED显示屏原理图
alt text
图4.2.2 各引脚定义

我们需要用U8g2(驱动OLED屏幕的一个库)这个库在OLED屏幕显示,在Arduino IDE导航栏中点击“项目” —>“导入库” —>“管理库”,输入“U8g2”,查找选择最新版本进行安装。

alt text
图4.2.3 按步骤进行选择

alt text
图4.2.4 安装U8g2库

alt text

图4.2.5 U8g2库安装成功

(2)实验代码

#include <Arduino.h>
#include <U8g2lib.h>
#include <Wire.h>

// spi驱动方式
U8G2_SSD1306_128X64_NONAME_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 36, /* data=*/ 35, /* cs=*/ 10, /* dc=*/ 33, /* reset=*/ 34);

void setup(void) {
u8g2.begin();
}

void loop(void) {
u8g2.clearBuffer(); // 清除内部存储器
u8g2.setFont(u8g2_font_ncenB08_tr); // 选择合适的字体
u8g2.drawStr(0,10,"Hello World!"); // 在屏幕上显示 Hello World!
u8g2.sendBuffer(); // 将内部存储器传输到显示器
delay(1000);
}

编写代码并连接串口和开发板后,进行上传。

alt text

图4.2.6 上传编译

(3)实验讲解

函数说明
u8g2.begin()表示构造u8g2
u8g2.clearBuffer();清除缓冲区,一般是与sendBuffer函数配对使用
u8g2.drawStr()绘制字符串
@param x 左上角的x坐标
@param y 左上角的y坐标
@param s 绘制字符串内容
@return 字符串的长度
delay()延时函数

(4)实验现象

编译上传代码后,可以看到屏幕显示“Hello World!”。

alt text

图4.2.7 实物现象